OpenRoads Designer CONNECT Edition SDK Help

Global add prefix for existing feature definition

The below code snippet shows adding the prefix for active feature definitions used in current Dgn file. Here, " Alignment\\Geom_Baseline_Driveway" feature definition is used for demo purpose.


//Required References
using Bentley.CifNET.GeometryModel.SDK;
using Bentley.CifNET.SDK.Edit;

 public void AddPrefixToActiveFeatureDefinitions()
        {
            //Get active DGN model connection for edit purpose  
            Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit con = ConsensusConnectionEdit.GetActive();
            if (con == null) return;

            //Get active geometric model
            GeometricModel activeGM = con.GetActiveGeometricModel();

            //Get Object space required for persisting the changes
            Bentley.CifNET.CadSystem.IObjectSpaceManager objectSpaceManager = Bentley.CifNET.ServiceManager.Instance.GetService<Bentley.CifNET.CadSystem.IObjectSpaceManager>();
            Bentley.CifNET.Objects.IObjectSpace objectSpace = objectSpaceManager.ObjectSpace/*.GetIsolated()*/;

            //Get active feature definitions
            foreach (Bentley.CifNET.GeometryModel.SDK.FeatureDefinition feature in activeGM.FeatureDefinitions)
            {
                //Get Object settings
                Bentley.CifNET.ContentManagementModel.ObjectSettings obs = feature.DomainObject as Bentley.CifNET.ContentManagementModel.ObjectSettings;

                if (obs.Name.Contains("Alignment\\Geom_Baseline_Driveway"))
                {
                    //Change prefix name
                    obs.NamePrefix = "GeomDW";

                    //Save changes
                    objectSpace.PersistChanges(obs);
                }
            }
        }